#ifndef VIDEO_SYS_H
#define VIDEO_SYS_H

#include <SDL/SDL.h>

#define MODE_2D 0
#define MODE_3D 0

namespace Eternal
{
	namespace Core { class InputManager; }
	namespace Video
	{
		class VideoSystem
		{
			public:
				VideoSystem(Core::InputManager *inputDev);
				~VideoSystem();
				
				void Initialize(const unsigned int vertCacheSize = 64, 
								const unsigned int colCacheSize = 64,
								const unsigned int texCacheSize = 64) const;
				
				void BeginScene();
				void EndScene() const;
				
				void RenderVerts(float *vertAddr, unsigned int size) const;
				
				void RenderMode2D();
				void RenderMode3D();
			private:
				/* Used to poll for window events */
				SDL_Event event;
				unsigned short renderMode;
				unsigned int i_Ticks;
				Core::InputManager *InputSys;
		};
	}
}

#endif